package com.scuec.groupfive.controller;

import com.github.pagehelper.PageInfo;
import com.scuec.groupfive.entity.Post;
import com.scuec.groupfive.service.CommunityService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/community")
@CrossOrigin
public class CommunityController {

    @Autowired
    private CommunityService communityService;

    /**
     * 获取所有帖子（分页）
     * @param pageNum 页码（默认1）
     * @param pageSize 每页大小（默认10）
     * @return 帖子分页信息
     */
    //http://localhost:8080/community/posts
    @GetMapping("/posts")
    public PageInfo<Post> getAllPosts(
            @RequestParam(defaultValue = "1") Integer pageNum,
            @RequestParam(defaultValue = "10") Integer pageSize) {
        return communityService.getAllPostsWithUserInfo(pageNum, pageSize);
    }

    /**
     * 根据用户名查询帖子
     * @param username 用户名
     * @param pageNum 页码（默认1）
     * @param pageSize 每页大小（默认10）
     * @return 帖子分页信息
     */
    //http://localhost:8080/community/posts?username=user001
    @GetMapping("/posts/username")
    public PageInfo<Post> getPostsByUsername(
            @RequestParam String username,
            @RequestParam(defaultValue = "1") Integer pageNum,
            @RequestParam(defaultValue = "10") Integer pageSize) {
        return communityService.getPostsByUsername(username, pageNum, pageSize);
    }

    /**
     * 根据标题查询帖子
     * @param title 帖子标题
     * @param pageNum 页码（默认1）
     * @param pageSize 每页大小（默认10）
     * @return 帖子分页信息
     */
    //http://localhost:8080/community/posts/title
    @GetMapping("/posts/title")
    public PageInfo<Post> getPostsByTitle(
            @RequestParam String title,
            @RequestParam(defaultValue = "1") Integer pageNum,
            @RequestParam(defaultValue = "10") Integer pageSize) {
        return communityService.getPostsByTitle(title, pageNum, pageSize);
    }
}